package juego.enemigo;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import juego.control.Personaje;
import juego.entidades.Entidad;
import juego.graficos.ElementoGrafico;

import juego.niveles.Nivel;
import juego.powerups.Estrella;

public class Goomba extends Enemigo {

	public Goomba (){
		this.valor=30;}
	
	public int saltos(){return 0;}
	
	
	public void colisionarEnemigo(Personaje mario, int x, int y,JLabel jLabel1) {
	
	
	if (mario.esChiquito()){
			
			mario.setPuntaje(mario.getPuntaje()-this.valor);
		 	mario.setVidas(mario.getVidas()-1);
		 	mario.getVentanaPrincipal().actualizarPuntaje();
		 	mario.getVentanaPrincipal().actualizarVidas();
		 	mario.dibujarVidas();
	
	}
		else if (!mario.esChiquito()){
			
			mario.hacerChiquito();
		}
		
	}
	protected Object clone()
	{
		Goomba g = new Goomba();
		return g;
	}


	public String soy() {
		return "Goomba";
	}

	public void colisionarEnemigoDeArriba(Personaje mario, int x, int y,	JLabel jLabel1) {
		
			
		Entidad vacio= (Entidad) mario.getLevel().getEntidad(x,y);
		
		if (vacio.hayMalos() && (!vacio.nombreEntidad().equals("piedra rompible"))){
			jLabel1.remove(vacio.getGrafico());
			vacio.getMalo();
			destruirMovimiento();
			vacio.setGrafico(new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/powerups/vacio/vacio_transparente.png"))));
			vacio.getGrafico().setLocation(y*32, x*32);
			jLabel1.add(vacio.getGrafico());
			jLabel1.repaint();
			mario.setPuntaje(mario.getPuntaje()+60);
			mario.getVentanaPrincipal().actualizarPuntaje();

		
		}
	}
	
	public void eliminarEnemigo(Personaje mario, int x, int y,	JLabel jLabel1) {
		
		
		Entidad vacio= (Entidad) mario.getLevel().getEntidad(x,y);
		if (vacio.hayMalos()){
		
			jLabel1.remove(vacio.getGrafico());
			vacio.getMalo();
			destruirMovimiento();
			vacio.setGrafico(new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/powerups/vacio/vacio_transparente.png"))));
			vacio.getGrafico().setLocation(y*32, x*32);
			jLabel1.add(vacio.getGrafico());
			jLabel1.repaint();
			mario.setPuntaje(mario.getPuntaje()+60);
	 		mario.getVentanaPrincipal().actualizarPuntaje();
		
	
		
		}
	}


	@Override
	public void crearMovimiento(Personaje mario,Nivel level, JLabel j, int xM, int yM,Entidad contenedora) {
		movimiento=new Malvado(mario,level,j,xM,yM,contenedora);
		
	}
	public  void iniciarMovimiento(){
		if (movimiento!=null) movimiento.start();
		}
	
	public void detenerMovimiento(){
		if (movimiento!=null) movimiento.stop(); 
		}

	
	public void atacarMario(Personaje mario,int x, int y) {
		
		if ((mario.miCaract().dameXtuya()==x)&&(mario.miCaract().dameYtuya()==y)){
			
			if (mario.esChiquito()){
				
				mario.setPuntaje(mario.getPuntaje()-this.valor);
			 	mario.setVidas(mario.getVidas()-1);
			 	mario.getVentanaPrincipal().actualizarVidas();
			 	mario.getVentanaPrincipal().actualizarPuntaje();
			 	mario.dibujarVidas();
		
	         	}
			else if (!mario.esChiquito()){
				
				mario.hacerChiquito();
			}
		
			
		}
	
		
	}

	@Override
	public void destruirMovimiento() {
		if (movimiento!=null){
		    movimiento.morite();}
		
	}



	
	
}
